Optical pointing devices are already known in the art. U.S. patent application Ser. No. 10/609,687, filed in the name of the same Assignee and enclosed in its entirety herewith by way of reference, for instance discloses, as shown in FIG. 1, an optical sensing system comprising a light source 10 for illuminating a portion of a surface S with radiation, a photodetector device 20 having at least one photosensitive element responsive to radiation reflected from the illuminated surface portion S, and a motion sensing unit 30, coupled to the output of photodetector device 20, for detecting and measuring displacement with respect to the illuminated surface portion S. During each period of activation, or flash, light source 10 is activated to illuminate surface portion S, photodetector device 20 is activated to capture an image or intensity pattern of the illuminated surface portion S and motion sensing unit 30 is activated to detect and measure the displacement with to the illuminated surface portion S based on a comparison of the intensity pattern detected by photodetector device 20 during a previous flash period. The rate at which activation of light source 10, photodetector device 20 and motion sensing unit 30 is repeated, is defined as the “flash rate”. Motion sensing unit 30 outputs motion reports that are each representative of a magnitude of the detected displacement. The motion sensing device further comprises a control unit 40, which purpose is to adjust the flash rate (i.e. the rate of activation of light source 10, photodetector device 20 and motion sensing unit 30) as a function of the magnitude of the detected displacement. The motion reports from motion sensing unit 30 are thus fed to control unit 40 to provide a basis and reference for performing this adjustment of the flash rate. More particularly, control unit 40 is adapted to compare the magnitude of the detected displacement with a determined displacement threshold, designated Δth, and increase or decrease the flash rate if the magnitude of the detected displacement is respectively greater or lower than the displacement threshold Δth. Accordingly, if the displacement reported by the sensor is larger than the displacement threshold, the flash rate is increased (i.e. the time between flashes decreases) and if this reported displacement is lower than the threshold, the flash rate is decreased (i.e. the time between flashes increases).
The motion sensing device additionally includes a comparator array 50 which is coupled between photodetector device 20 and motion sensing unit 30. This comparator array 50 is used to extract so-called edge direction data from the intensity pattern detected by photodetector array 20, i.e. data that is descriptive of light intensity differences between neighbouring pixels of the photodetector array (a pixel designates one photosensitive element of the photodetector array). Edge direction data includes two types of edge direction conditions, namely a first edge condition, or positive edge, defined as a condition wherein the light intensity of a first pixel is less than the light intensity of a second pixel, and a second edge condition, or negative edge, defined as a condition wherein the light intensity of the first pixel is greater than the light intensity of the second pixel. Such edge direction conditions are defined between every pair of neighbouring pixels (not necessarily adjacent) of photodetector array 20 and are determined, as already mentioned, thanks to comparator array 50 which basically consists of a set of comparator circuits coupled to corresponding pairs of pixels within array 20. This edge direction data is fed by comparator array 50 to motion sensing unit 30 for further processing. In particular, according to the “Peak/Null Motion Detection” algorithm described in international application WO 03/049018 A1, filed in the name of the same Assignee and which is incorporated herein by reference, so-called edge inflection data is extracted from the edge direction data supplied by comparator array 50, this edge inflection data being descriptive of the succession of positive and negative edges along the first or second axis of the photodetector array and include a first inflection condition, or peak, defined as the succession, along the first or second axis, of a positive edge followed by a negative edge, and a second inflection condition, or null, defined as the succession, along the first or second axis, of a negative edge followed by a positive edge. In contrast to the previously mentioned edge direction data, an inflection condition, whether a peak or a null, does not appear systematically between two successive edge conditions. Besides peaks and nulls there also exist states where the direction of the detected edge does not change when looking at the succession of two edge conditions. According to this “Peak/Null Motion Detection” algorithm, motion is tracked by looking at the displacement of the edge inflection conditions between two successive flashes. The locations of the peaks and nulls are thus compared with the locations of the peaks and nulls detected from a previous flash in order to determine the direction and magnitude of displacement. The displacement is determined by comparing the location of each peak or null determined from a first flash with the locations, in the immediate vicinity, of similar peaks and nulls determined from another flash, i.e. locations that are within one pixel pitch of the detected peak or null. The result of the calculation is an indication of the direction and magnitude of displacement, along each axis of displacement, expressed as a fraction of the pixel pitch.
A “loss-of-tracking” event may occur if the sensor displacement speed is too great or if the sensor acceleration is too high, and may be identified, thanks to the “Peak/Null Motion Detection” approach, by looking at the number of so-called “ghost edge inflection conditions”, i.e. edge inflection conditions that appear to come from nowhere. These “ghost edge inflection conditions” are identified as edge inflection conditions determined during a flash for which no similar edge inflection condition determined during another flash can be found at the same location or one pixel pitch around it. The number of these “ghost edge inflection conditions” can be tracked for each axe of the photodetector device and compared to a determined threshold. If the number exceeds the threshold, this can be identified as a loss-of-tracking event. The threshold is defined hereinafter as the “loss-of-tracking threshold” and designated as LOTth. Motion sensing unit 30 is supplying an additional parameter, designated NG, to control unit 40, which parameter relates to the number of ghost edge inflections found during motion detection. Control unit 40 is also further adapted to compare this number NG with threshold LOTth and further increase the flash rate if the loss-of-tracking event occurs (when reported number NG is greater than threshold LOTth). When a loss-of-tracking event occurs, which situation should be regarded as exceptional, the flash rate is preferably increased directly to a maximum value in order to quickly regain track of the displacement.
For instance, in the embodiment of FIG. 1, detection of the occurrence of loss-of-tracking events is shown to be performed by control unit 40, motion sensing unit 30 providing to control unit 40 the number NG of detected ghost edge inflection conditions. Such detection may alternatively be embedded in motion sensing unit 30. In such case, motion sensing unit 30 would simply provide to control unit 40 an indication of the occurrence or non-occurrence of a loss-of-tracking event so as to allow appropriate adjustment of the flash rate.
Control unit 40 is further adapted to communicate in a bidirectional manner with a line interface 45 that communicates in turn with a host system (not illustrated). Cursor control signals (and eventually other signals related to the optical pointing device) are supplied to the host system. Control unit 40 may also receive information, such as configuration signals from the host system.
Tendency is to provide with wireless optical mouse in which one major care is to reduce as much as possible power consumption while keeping reliable performances. Current operating methods for such optical motion sensing device comprises a motion detection mode during which relative motion is detected between the optical motion sensing device and the illuminated surface portion and a sleep mode during which relative motion between the optical motion sensing device and the surface portion is no longer detected and then power consumption is reduced. In the existing prior art solutions, entrance into and exit from the sleep mode may be done manually by the user activating a switch provided on the optical motion sensing device. However such solution requires a positive action from the user which is constraining and do not prevent from power consumption excesses in case the user left the optical motion sensing device without switching it off. Another existing solution consists in automatically entering the sleep mode when reported motion is less than a minimum threshold under which the optical motion sensing device is considered to be at rest. In this sleep mode, the optical motion sensing device reduces its activity to the bare minimum needed to detect any incoming activities, i.e. when the user has returned, so it can wake up and resumes the motion detection mode. For that purpose, one existing method consists in using a periodic wake up of optical motion sensing device to check if the user has returned. It results in a difficult trade off between power consumption during sleep mode and response lag for resuming the motion detection mode once the user has returned. In fact, if the wake up period is set short, then power consumption grows accordingly and if it is set long, a response lag perceivable by the user appears.
The goal of the present invention is thus to implement a reliable method in such an optical motion sensing device to detect that the user has returned and to wake up as fast as possible, in order to prevent apparition of a response lag perceivable by the user. In the meantime, this method should also be as less costly in power as possible.